package com.tanjun.userservice.web.service.user.entity;

import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import com.tanjun.common.enums.EnableStatusEnum;
import com.tanjun.common.enums.user.AdminUserTypeEnum;
import com.tanjun.common.enums.user.SexEnum;
import com.tanjun.data.entity.BaseEntity;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;
import java.sql.Date;

/**
 * 系统用户 实体类。
 *
 * @author tanjun
 * @since 2025-08-20
 */
@Data
@Builder
@EqualsAndHashCode(callSuper = true)
@Table("base_admin_user")
public class BaseAdminUserEntity extends BaseEntity implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @Id(keyType = KeyType.Auto)
    private Long userId;

    /**
     * 用户类型(1.系统用户  2：商户用户)
     */
    private AdminUserTypeEnum userType;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 供应商id(供应商用户才有)
     */
    private Long vendorId;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 密码
     */
    private String pwd;

    /**
     * 密码盐值
     */
    private String salt;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 性别 （0:未知,1:男；2:女）
     */
    private SexEnum userSex;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 生日
     */
    private Date birthDate;

    /**
     * 用户图像
     */
    private String avatar;

    /**
     * 是否可用
     */
    private EnableStatusEnum enabled;

}
